/***************************************************************************
 创建者：          hualei
 开始时间：      2018.09.10
 copyright:(C)    深圳市华友高科有限公司
 修改说明：（每次有修改就添加一条，带有 修改人，修改时间，修改描述）

 ***************************************************************************
 *   MODBUS_FREE 自由导航指令DP点位属性属性编辑视窗类
 *
 ***************************************************************************/
#ifndef MOVEFREEDPOINTVIEW_H
#define MOVEFREEDPOINTVIEW_H

#include <QDialog>
#include "movefreeinstructionview_global.h"
#include"../../CommunicateDelegate/hmicommunicate.h"
#include <qstandarditemmodel.h>
#include "../../CommunicateDelegate/filedata.h"
#include "globalDefine.h"


// 前置声明指令程序主视图窗口类
class ProgramView;
// 前置声明自由导航属性编辑视图类
class MoveFreeInstructionView;

namespace Ui {
class MoveFreeDPointView;
}

/**
 * @brief The EM_RECORD_POINT_TYPE enum         载入点类型
 */
enum EM_RECORD_POINT_TYPE
{
    E_RECORD_EDITED_POINT,          // 编辑点
    E_RECORD_CURRENT_POINT,         // 当前位置点
    E_RECORD_MAP_SELECTI_POINT,     // 地图选择点
    E_RECORD_PROGRAM_VIEW_POINT     // 选择指令载入

};

/**
 * @brief The MoveFreeDPointView class  MODBUS_FREE 自由导航指令DP点位属性属性编辑视窗类
 */
class MOVEFREEINSTRUCTIONVIEWSHARED_EXPORT MoveFreeDPointView : public QDialog
{
    Q_OBJECT

public:
    /**
     * @brief MoveFreeDPointView        构造函数
     * @param parent
     */
    explicit MoveFreeDPointView(int styleId,QDialog *parent = 0);

    /**
     * @brief getInput              获取界面输入
     */
    void getInput();

    /**
     * @brief updateView            更新显示到界面上
     */
    void updateView();

    /**
     * @brief changedLanguage       更改语言
     * @param language
     */
    void changedLanguage();

    void initialDisplayStyle(int styleId);


private slots:
    /**
     * @brief on_Modif_DPointValue_Affirm_Btn_clicked       修改点位数据确认信号
     */
    void on_Modif_DPointValue_Affirm_Btn_clicked();

    /**
     * @brief on_forward_Btn_clicked                        返回上一页信号响应槽函数
     */
    void on_forward_Btn_clicked();

    /**
     * @brief on_BackMainView_Btn_clicked                   点击返回主视图响应槽函数
     */
    void on_BackMainView_Btn_clicked();

signals:

    /**
     * @brief recordPoint_Signal            载入点位数据信号
     */
    void recordEditedDPointSignal(int recordPointType);

public:

    /**
     * @brief programView                   程序编辑主视图对象
     */
    ProgramView *programView;

    /**
     * @brief moveFreeInstructionView       自由导航属性编辑视图类
     */
    MoveFreeInstructionView *moveFreeInstructionView;

    /**
     * @brief dPointTemp                    保存DP点位数据结构体
     */
    DPoint dPointTemp, testDPoint;

private:

    Ui::MoveFreeDPointView *ui;

    /**
     * @brief mutex                         mutex同步锁
     */
    QMutex mutex;

    /**
     * @brief dPointValueModel              tableView控件列表显示标准数据模型
     */
    QStandardItemModel *dPointValueModel;

};

#endif // MOVEFREEDPOINTVIEW_H
